home *** CD-ROM | disk | FTP | other *** search
- \unnumbchapentry {Introduction}{1}
- \unnumbchapentry {Conditions for Using Bison}{3}
- \unnumbchapentry {Bison General Public License}{5}
- \unnumbsecentry {Copying Policies}{5}
- \unnumbsecentry {NO WARRANTY}{7}
- \chapentry {The Concepts of Bison}{1}{9}
- \secentry {Languages and Context-Free Grammars}{1}{1}{9}
- \secentry {From Formal Rules to Bison Input}{1}{2}{10}
- \secentry {Semantic Values}{1}{3}{11}
- \secentry {Semantic Actions}{1}{4}{12}
- \secentry {Bison Output: the Parser File}{1}{5}{13}
- \secentry {Stages in Using Bison}{1}{6}{13}
- \secentry {The Overall Layout of a Bison Grammar}{1}{7}{14}
- \chapentry {Examples}{2}{17}
- \secentry {Reverse Polish Notation Calculator}{2}{1}{17}
- \subsecentry {Declarations for Rpcalc}{2}{1}{1}{17}
- \subsecentry {Grammar Rules for Rpcalc}{2}{1}{2}{18}
- \subsubsecentry {Explanation of {\fam \ttfam \tentt \rawbackslash input}\hbox {}}{2}{1}{2}{1}{19}
- \subsubsecentry {Explanation of {\fam \ttfam \tentt \rawbackslash line}\hbox {}}{2}{1}{2}{2}{20}
- \subsubsecentry {Explanation of {\fam \ttfam \tentt \rawbackslash expr}\hbox {}}{2}{1}{2}{3}{20}
- \subsecentry {The Rpcalc Lexical Analyzer}{2}{1}{3}{21}
- \subsecentry {The Controlling Function}{2}{1}{4}{22}
- \subsecentry {The Error Reporting Routine}{2}{1}{5}{23}
- \subsecentry {Running Bison to Make the Parser}{2}{1}{6}{23}
- \subsecentry {Compiling the Parser File}{2}{1}{7}{24}
- \secentry {Infix Notation Calculator: {\fam \ttfam \tentt \rawbackslash calc}\hbox {}}{2}{2}{24}
- \secentry {Simple Error Recovery}{2}{3}{26}
- \secentry {Multi-Function Calculator: {\fam \ttfam \tentt \rawbackslash mfcalc}\hbox {}}{2}{4}{27}
- \subsecentry {Declarations for {\fam \ttfam \tentt \rawbackslash mfcalc}\hbox {}}{2}{4}{1}{28}
- \subsecentry {Grammar Rules for {\fam \ttfam \tentt \rawbackslash mfcalc}\hbox {}}{2}{4}{2}{29}
- \subsecentry {Managing the Symbol Table for {\fam \ttfam \tentt \rawbackslash mfcalc}\hbox {}}{2}{4}{3}{29}
- \secentry {Exercises}{2}{5}{33}
- \chapentry {Bison Grammar Files}{3}{35}
- \secentry {Outline of a Bison Grammar}{3}{1}{35}
- \subsecentry {The C Declarations Section}{3}{1}{1}{35}
- \subsecentry {The Bison Declarations Section}{3}{1}{2}{35}
- \subsecentry {The Grammar Rules Section}{3}{1}{3}{36}
- \subsecentry {The Additional C Code Section}{3}{1}{4}{36}
- \secentry {Symbols, Terminal and Nonterminal}{3}{2}{36}
- \secentry {Syntax of Grammar Rules}{3}{3}{38}
- \secentry {Recursive Rules}{3}{4}{39}
- \secentry {The Semantics of the Language}{3}{5}{40}
- \subsecentry {The Data Types of Semantic Values}{3}{5}{1}{40}
- \subsecentry {More Than One Type for Semantic Values}{3}{5}{2}{41}
- \subsecentry {Actions}{3}{5}{3}{41}
- \subsecentry {Data Types of Values in Actions}{3}{5}{4}{42}
- \subsecentry {Actions in Mid-Rule}{3}{5}{5}{43}
- \secentry {Bison Declarations}{3}{6}{45}
- \subsecentry {Declaring Token Type Names}{3}{6}{1}{46}
- \subsecentry {Declaring Operator Precedence}{3}{6}{2}{47}
- \subsecentry {Declaring the Collection of Value Types}{3}{6}{3}{47}
- \subsecentry {Declaring Value Types of Nonterminal Symbols}{3}{6}{4}{48}
- \subsecentry {Preventing Warnings about Conflicts}{3}{6}{5}{48}
- \subsecentry {Declaring the Start-Symbol}{3}{6}{6}{49}
- \subsecentry {Requesting a Pure (Reentrant) Parser}{3}{6}{7}{49}
- \subsecentry {Bison Declaration Summary}{3}{6}{8}{50}
- \chapentry {Parser C-Language Interface}{4}{51}
- \secentry {The Parser Function {\fam \ttfam \tentt \rawbackslash yyparse}\hbox {}}{4}{1}{51}
- \secentry {The Lexical Analyzer Function {\fam \ttfam \tentt \rawbackslash yylex}\hbox {}}{4}{2}{51}
- \secentry {The Error Reporting Function {\fam \ttfam \tentt \rawbackslash yyerror}\hbox {}}{4}{3}{54}
- \secentry {Special Features for Use in Actions}{4}{4}{54}
- \chapentry {The Algorithm of the Bison Parser}{5}{57}
- \secentry {Look-Ahead Tokens}{5}{1}{58}
- \secentry {Shift/Reduce Conflicts}{5}{2}{59}
- \secentry {Operator Precedence}{5}{3}{60}
- \subsecentry {When Precedence is Needed}{5}{3}{1}{60}
- \subsecentry {How to Specify Operator Precedence}{5}{3}{2}{61}
- \subsecentry {Precedence Examples}{5}{3}{3}{61}
- \subsecentry {How Precedence Works}{5}{3}{4}{61}
- \secentry {Operators with Context-Dependent Precedence}{5}{4}{62}
- \secentry {Parser States}{5}{5}{63}
- \secentry {Reduce/Reduce conflicts}{5}{6}{63}
- \chapentry {Error Recovery}{6}{67}
- \chapentry {Debugging Your Parser}{7}{69}
- \chapentry {Invocation of Bison; Command Options}{8}{71}
- \chapentry {Table of Bison Symbols}{Appendix \char 65}{73}
- \chapentry {Glossary}{Appendix \char 66}{75}
-